package cn.tedu.review;
/*复写多线程编程的方案1*/
public class Demo {
    public static void main(String[] args) {
        MyThread t1 = new MyThread();
        MyThread t2 = new MyThread();
        MyThread t3 = new MyThread();
        MyThread t4 = new MyThread();
        /*这个run()如果这样直接调用,是没有多线程抢占效果的,
        * 这个写法只是把代码当做普通方法来调用,谁先调用,谁先执行*/
        /**t1.run();
        t2.run();
        t3.run();
        t4.run();*/
        /*7.start对应的状态就是就绪状态.会把刚刚新建好的线程加入到就绪队伍之中
        * 至于这个线程什么时候执行,这就是多线程执行的随机性,需要等待os选中并分配CPU
        * 8.线程的执行具有随机性,也就是说t1-t4具体怎么执行
        * 取决于CPU的调度与时间片的分配,我们是决定不了的
        * 9.执行start()的时候,底层会自动调用我们重写的,包含自己业务的run()
        * */
        t1.start();
        t2.start();
        t3.start();
        t4.start();
    }
}
class MyThread extends Thread{
    @Override
    public void run() {
        //super.run();
        for(int i=0;i<10;i++){
            System.out.println(i+"="+getName());
        }
    }
}
